Micron Document
Livres et Wikis | Archives | Info


ArangoDB
layout: Wide Β· Narrow Β· Centered
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
ArangoDB is a graph database system developed by ArangoDB Inc. ArangoDB is a multi-model database system since it supports three data models (graphs, JSON documents, key/value)cite-ref-1[1] with one database core and a unified query language AQL (ArangoDB Query Language). AQL is mainly a declarative languagecite-ref-2[2] and allows the combination of different data access patterns in a single query.cite-ref-3[3]

ArangoDB is a NoSQL database systemcite-ref-4[4] but AQL is similar in many ways to SQL,cite-ref-5[5] it uses RocksDB as a storage engine.

Contents

β€’ History
β€’ Features
β€’ Editions
β€’ See also
β€’ References

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

History

ArangoDB GmbH was founded in 2014 by Claudius Weinberger and Frank Celler.cite-ref-6[6] They originally called the database system β€œA Versatile Object Container", or AVOC for short, leading them to call the database AvocadoDB.cite-ref-7[7]cite-ref-8[8]cite-ref-9[9] Later, they changed the name to ArangoDB.cite-ref-10[10] The word "arango" refers to a little-known avocado variety grown in Cuba.cite-ref-11[11]

In January 2017 ArangoDB raised a seed round investment of 4.2 million Euros led by Target Partners. In March 2019 ArangoDB raised 10 million dollars in series A fundingcite-ref-12[12] led by Bow Capital. In October 2021 ArangoDB raised 27.8 million dollars in series B funding led by Iris Capital.cite-ref-13[13]

Release history

| Release | First Release | Latest Minor Version | Latest Release |
|---|---|---|---|
| 3.11 | 2023-05-30 | 3.11.5 | 2023-11-09 |
| 3.10 | 2022-10-04 | 3.10.11 | 2023-10-19 |
| 3.9 | 2022-02-15 | 3.9.12 | 2023-08-23 |
| 3.8 | 2021-07-29 | 3.8.9 | 2023-03-27 |
| 3.7 | 2020-09-16 | 3.7.17 | 2022-02-01 |
| 3.6 | 2020-01-08 | 3.6.16 | 2021-09-06 |
| 3.5 | 2019-08-21 | 3.5.7 | 2020-12-30 |
| 3.4 | 2018-12-06 | 3.4.11 | 2020-09-09 |
| 3.3 | 2017-12-22 | 3.3.25 | 2020-02-28 |
| 3.2 | 2017-07-20 | 3.2.18 | 2019-02-02 |
| 3.1 | 2016-11-03 | 3.1.29 | 2018-06-23 |
| 3.0 | 2016-07-23 | 3.0.12 | 2016-11-23 |

| Release | Feature Notes |
|---|---|
| 3.11 | Faster query performance across search… |
| 3.10 | Native ARM support, including native su… |
| 3.9 | Collections replicated on all cluster n… |
| 3.8 | Graph traversal algorithms to enumerate… |
| 3.7 | Graphs replicated on all cluster nodes… |
| 3.6 | Option to store all collections of a da… |
| 3.5 | Multi-document transactions with indivi… |
| 3.4 | Integrated full-text search and informa… |
| 3.3 | Datacenter to Datacenter Replication fo… |
| 3.2 | Distributed iterative graph processing… |
| 3.1 | Value-based sharding of large graph dat… |
| 3.0 | Cluster support with synchronous replic… |

Features

β€’ JSON: ArangoDB uses JSON as a default storage format,cite-ref-14[14] but internally it uses ArangoDB VelocyPack – a fast and compact binary format for serialization and storage.cite-ref-15[15] ArangoDB can natively store a nested JSON object as a data entry inside a collection. Therefore, there is no need to disassemble the resulting JSON objects. Thus, the stored data would simply inherit the tree structure of the JSON data.
β€’ Predictable performance: ArangoDB is written mainly in C++cite-ref-16[16] and manages its own memory to avoid unpredictable performance arising from garbage collection.
β€’ Scaling: ArangoDB provides scaling through clustering.cite-ref-17[17]
β€’ Reliability: ArangoDB provides datacenter-to-datacenter replication.cite-ref-18[18]
β€’ Kubernetes: ArangoDB runs on Kubernetes, including cloud-based Kubernetes services Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), and Microsoft Azure Kubernetes Service (AKS).cite-ref-19[19]
β€’ Microservices: ArangoDB provides integration with native JavaScript microservices directly on top of the DBMS using the Foxx framework.cite-ref-20[20]
β€’ Multiple query languages: The database has its own query language, AQL (ArangoDB Query Language), and also provides GraphQL to write flexible native web services directly on top of the DBMS.cite-ref-21[21]
β€’ Search: ArangoDB's search engine combines boolean retrieval capabilities with generalized ranking components allowing for data retrieval based on a precise vector space model.cite-ref-22[22]
β€’ Pregel algorithm: Pregel is a system for large scale graph processing.cite-ref-23[23] Pregel is implemented in ArangoDB and can be used with predefined algorithms, e.g. PageRank, Single-Source Shortest Path and Connected components.cite-ref-24[24]
β€’ Transactions: ArangoDB supports user-definable transactions. Transactions in ArangoDB are atomic, consistent, isolated, and durable (ACID), but only if data is not sharded.cite-ref-25[25]

AQL (ArangoDB Query Language) is the SQL-like query languagecite-ref-26[26] used in ArangoDB. It supports CRUD operations for both documents (nodes) and edges, but it is not a data definition language (DDL). AQL does support geospatial queries.

AQL is JSON-oriented:

// Return every document in a collection
FOR doc IN collection
RETURN doc
// Count the number of documents in a collection
FOR doc IN collection
COLLECT WITH COUNT INTO length
RETURN length
// Add a new document into our collection
INSERT { _key: "john", name: "John", age: 45 } INTO collection
// Update document with key of β€œjohn” to have age 46.
UPDATE { _key: "john", age: 46 } IN collection
// Add an attribute numberOfLogins for all users with status active:
FOR u IN users
FILTER u.active == true
UPDATE u WITH { numberOfLogins: 0 } IN users

Editions

β€’ Community Edition: ArangoDB Community Edition is a graph database with native multi-model database capabilities written mainly in C++ and was available under an open-source license (Apache 2). In October 2023, the source code license was changed from Apache 2.0 to Business Source License, while the license for the pre-compiled binaries was changed from Apache 2.0 to a "ArangoDB Community License", which "limits its use for commercial purposes and imposes a 100GB limit on dataset size within a single cluster" cite-ref-27[27]
β€’ Commercial self-managed: ArangoDB Enterprise is a paid subscription that includes graph-aware sharding (called β€œSmartGraphs”)cite-ref-28[28] and collection replication (called β€œSatellite Collections”) to reduce query times,cite-ref-29[29] and increased security.cite-ref-30[30]
β€’ Cloud: ArangoDB is offered as a cloud service called Oasis, providing ArangoDB databases as a Service (DBaaS). ArangoDB Oasis provides the functionality of an ArangoDB cluster deployment while minimizing the amount of administrative effort required.cite-ref-31[31] ArangoDB Oasis run on multiple cloud service providers, include AWS, Azure, and Google Cloud.cite-ref-32[32]

See also
References

cite-note-11. ↑ "Advantages of native multi-model in ArangoDB". ArangoDB. Retrieved 2022-07-26.
cite-note-22. ↑ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
cite-note-33. ↑ "AQL Query Patterns & Examples | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
cite-note-44. ↑ citerefceller2012Celler, Frank (2012-03-07). "ArangoDB's design objectives". ArangoDB. Retrieved 2022-07-26.
cite-note-55. ↑ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
cite-note-66. ↑ "Variety Database". www.avocadosource.com. Retrieved 2022-07-27.
cite-note-77. ↑ citerefortell2021Ortell, Bill (2021-03-08), AvocadoDB, retrieved 2022-07-27
cite-note-88. ↑ AvocadoDB explained, retrieved 2022-07-27
cite-note-99. ↑ AvocadoDB Query Language Jan Steemann in english, retrieved 2022-07-27
cite-note-1010. ↑ ""AvocadoDB" becomes "ArangoDB"". ArangoDB. 2012-05-09. Retrieved 2022-07-27.
cite-note-1111. ↑ "Variety Database". www.avocadosource.com. Retrieved 2022-08-05.
cite-note-1212. ↑ citerefweinberger2019Weinberger, Claudius (2019-03-14). "ArangoDB receives Series A Funding led by Bow Capital". ArangoDB. Retrieved 2022-07-27.
cite-note-1313. ↑ "ArangoDB Announces $27.8 Million Series B Investment to Accelerate Development of Next-Generation Graph ML, Providing Advanced Analytics and AI Capabilities at Enterprise Scale". ArangoDB. Retrieved 2022-07-27.
cite-note-1414. ↑ AvocadoDB explained, retrieved 2022-08-05
cite-note-1515. ↑ AvocadoDB Query Language Jan Steemann in english, retrieved 2022-08-05
cite-note-1616. ↑ ArangoDB, ArangoDB, 2022-08-05, retrieved 2022-08-05
cite-note-1717. ↑ "Cluster | ArangoDB Deployment Modes | Architecture | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
cite-note-1818. ↑ "DC2DC Replication | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
cite-note-1919. ↑ "Kubernetes | Tutorials | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
cite-note-2020. ↑ "Foxx Microservices | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
cite-note-2121. ↑ ArangoDB, ArangoDB, 2022-08-05, retrieved 2022-08-05
cite-note-2222. ↑ "ArangoSearch - Full-text search engine including similarity ranking capabilities". ArangoDB. Retrieved 2022-08-05.
cite-note-2323. ↑ "Stanford University Pregel White paper" (PDF).
cite-note-2424. ↑ "Pregel | Data Science | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
cite-note-2525. ↑ "Transactions | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
cite-note-2626. ↑ "Cluster | ArangoDB Deployment Modes | Architecture | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-11.
cite-note-2727. ↑ ArangoDB, ArangoDB, 2023-10-13, retrieved 2023-10-13
cite-note-2828. ↑ "ArangoDB SmartGraphs | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-11.
cite-note-2929. ↑ "ArangoDB SatelliteCollections | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-11.
cite-note-3030. ↑ "ArangoDB Enterprise Features". ArangoDB. Retrieved 2022-08-11.
cite-note-3131. ↑ "Getting Started with ArangoDB Oasis | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-11.
cite-note-3232. ↑ "ArangoDB Oasis". ArangoDB Oasis. Retrieved 2022-08-11.